========================================================
这份报告选取了白酒品质数据集,对其进行了探索分析。
查看数据维度,一共有4898条数据记录,12个变量。
## [1] 4898 12
查看数据结构,11个关于白酒化学成分的变量,都是数值数据;还有一项 quality 是对白酒品质的打分,是0-10之间的整数。
## 'data.frame': 4898 obs. of 12 variables:
## $ fixed.acidity : num 7 6.3 8.1 7.2 7.2 8.1 6.2 7 6.3 8.1 ...
## $ volatile.acidity : num 0.27 0.3 0.28 0.23 0.23 0.28 0.32 0.27 0.3 0.22 ...
## $ citric.acid : num 0.36 0.34 0.4 0.32 0.32 0.4 0.16 0.36 0.34 0.43 ...
## $ residual.sugar : num 20.7 1.6 6.9 8.5 8.5 6.9 7 20.7 1.6 1.5 ...
## $ chlorides : num 0.045 0.049 0.05 0.058 0.058 0.05 0.045 0.045 0.049 0.044 ...
## $ free.sulfur.dioxide : num 45 14 30 47 47 30 30 45 14 28 ...
## $ total.sulfur.dioxide: num 170 132 97 186 186 97 136 170 132 129 ...
## $ density : num 1.001 0.994 0.995 0.996 0.996 ...
## $ pH : num 3 3.3 3.26 3.19 3.19 3.26 3.18 3 3.3 3.22 ...
## $ sulphates : num 0.45 0.49 0.44 0.4 0.4 0.44 0.47 0.45 0.49 0.45 ...
## $ alcohol : num 8.8 9.5 10.1 9.9 9.9 10.1 9.6 8.8 9.5 11 ...
## $ quality : int 6 6 6 6 6 6 6 6 6 6 ...
查看数据的统计量。
## fixed.acidity volatile.acidity citric.acid residual.sugar
## Min. : 3.800 Min. :0.0800 Min. :0.0000 Min. : 0.600
## 1st Qu.: 6.300 1st Qu.:0.2100 1st Qu.:0.2700 1st Qu.: 1.700
## Median : 6.800 Median :0.2600 Median :0.3200 Median : 5.200
## Mean : 6.855 Mean :0.2782 Mean :0.3342 Mean : 6.391
## 3rd Qu.: 7.300 3rd Qu.:0.3200 3rd Qu.:0.3900 3rd Qu.: 9.900
## Max. :14.200 Max. :1.1000 Max. :1.6600 Max. :65.800
## chlorides free.sulfur.dioxide total.sulfur.dioxide
## Min. :0.00900 Min. : 2.00 Min. : 9.0
## 1st Qu.:0.03600 1st Qu.: 23.00 1st Qu.:108.0
## Median :0.04300 Median : 34.00 Median :134.0
## Mean :0.04577 Mean : 35.31 Mean :138.4
## 3rd Qu.:0.05000 3rd Qu.: 46.00 3rd Qu.:167.0
## Max. :0.34600 Max. :289.00 Max. :440.0
## density pH sulphates alcohol
## Min. :0.9871 Min. :2.720 Min. :0.2200 Min. : 8.00
## 1st Qu.:0.9917 1st Qu.:3.090 1st Qu.:0.4100 1st Qu.: 9.50
## Median :0.9937 Median :3.180 Median :0.4700 Median :10.40
## Mean :0.9940 Mean :3.188 Mean :0.4898 Mean :10.51
## 3rd Qu.:0.9961 3rd Qu.:3.280 3rd Qu.:0.5500 3rd Qu.:11.40
## Max. :1.0390 Max. :3.820 Max. :1.0800 Max. :14.20
## quality
## Min. :3.000
## 1st Qu.:5.000
## Median :6.000
## Mean :5.878
## 3rd Qu.:6.000
## Max. :9.000
绘制 quality 变量的直方图。
绘制 quality 变量的箱图。
quality 变量的统计量。
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 3.000 5.000 6.000 5.878 6.000 9.000
quality 变量的分布情况。
##
## 3 4 5 6 7 8 9
## 20 163 1457 2198 880 175 5
从上面关于 quality 变量的绘图和统计结果可以发现, 品质打分 quality 变量是离散的,数值在3分到9分之间,6分的数据最多,并且向两边递减,数据主要集中在5-7分之间。
固定酸度(fixed.acidity) 的直方图,形态接近正态分布。
挥发酸度(volatile.acidity) 的直方图,接近正态分布,右偏。
柠檬酸(citric.acid)的直方图,总体接近正态分布,在0.49处数据量有陡增。
残糖(residual.sugar)的直方图。
残糖(residual.sugar)的箱图。
残糖(residual.sugar)直方图中看出这一变量数据集中在比较小的数值部分,且有多个峰,大体上有向右递减的趋势。 从它的箱图上看出有异常大的离群值存在。
氯化物(chlorides)的直方图,右侧有非常长的尾巴。
游离二氧化硫(free.sulfur.dioxide)的直方图,有异常大的离群值。
总二氧化硫(total.sulfur.dioxide)的直方图。
密度(density)的直方图。
酸碱度(pH)的直方图。
硫酸盐(sulphates)的直方图。
酒精度(alcohol)的直方图,分布不是很规则,总体上有向右递减的趋势。
该白酒数据集一共有4898条数据记录,包含11个化学成分的变量,以及1项品质打分的变量。 品质打分 quality 是0-10之间的整数,11个化学成分变量分别是:
其他观察到的现象:
这份数据集中最感兴趣的特征是白酒的品质 quality 变量,它是三位评酒师给出的打分数据。 这里希望探究 quality 变量与白酒化学成分之间的关系,哪些化学成分会影响白酒品质的好坏。
因为 quality 变量是由人给出的打分,所以根据人们能感知到的酸甜苦辣咸等, 猜测酒精度(alcohol)、 酸度(fixed.acidity、volatile.acidity、PH)、 含盐量(chlorides)、 含糖量(residual.sugar)这些都对白酒品质 quality 有影响。 另外总二氧化硫(total.sulfur.dioxide)浓度较大时,也能被味觉和嗅觉识别,所以猜测它也能影响 quality。 当然,这些特征到底对 quality 有多大的贡献,还需要后续进一步的数据分析。
相关系数矩阵。
## fixed.acidity volatile.acidity citric.acid
## fixed.acidity 1.00 -0.02 0.29
## volatile.acidity -0.02 1.00 -0.15
## citric.acid 0.29 -0.15 1.00
## residual.sugar 0.09 0.06 0.09
## chlorides 0.02 0.07 0.11
## free.sulfur.dioxide -0.05 -0.10 0.09
## total.sulfur.dioxide 0.09 0.09 0.12
## density 0.27 0.03 0.15
## pH -0.43 -0.03 -0.16
## sulphates -0.02 -0.04 0.06
## alcohol -0.12 0.07 -0.08
## quality -0.11 -0.19 -0.01
## residual.sugar chlorides free.sulfur.dioxide
## fixed.acidity 0.09 0.02 -0.05
## volatile.acidity 0.06 0.07 -0.10
## citric.acid 0.09 0.11 0.09
## residual.sugar 1.00 0.09 0.30
## chlorides 0.09 1.00 0.10
## free.sulfur.dioxide 0.30 0.10 1.00
## total.sulfur.dioxide 0.40 0.20 0.62
## density 0.84 0.26 0.29
## pH -0.19 -0.09 0.00
## sulphates -0.03 0.02 0.06
## alcohol -0.45 -0.36 -0.25
## quality -0.10 -0.21 0.01
## total.sulfur.dioxide density pH sulphates alcohol
## fixed.acidity 0.09 0.27 -0.43 -0.02 -0.12
## volatile.acidity 0.09 0.03 -0.03 -0.04 0.07
## citric.acid 0.12 0.15 -0.16 0.06 -0.08
## residual.sugar 0.40 0.84 -0.19 -0.03 -0.45
## chlorides 0.20 0.26 -0.09 0.02 -0.36
## free.sulfur.dioxide 0.62 0.29 0.00 0.06 -0.25
## total.sulfur.dioxide 1.00 0.53 0.00 0.13 -0.45
## density 0.53 1.00 -0.09 0.07 -0.78
## pH 0.00 -0.09 1.00 0.16 0.12
## sulphates 0.13 0.07 0.16 1.00 -0.02
## alcohol -0.45 -0.78 0.12 -0.02 1.00
## quality -0.17 -0.31 0.10 0.05 0.44
## quality
## fixed.acidity -0.11
## volatile.acidity -0.19
## citric.acid -0.01
## residual.sugar -0.10
## chlorides -0.21
## free.sulfur.dioxide 0.01
## total.sulfur.dioxide -0.17
## density -0.31
## pH 0.10
## sulphates 0.05
## alcohol 0.44
## quality 1.00
将相关系数矩阵转换成热图,方便观察。
从相关系数矩阵及其对应的热图中,我们可以发现如下变量之间的相关性:
绘制各变量的矩阵散点图。
从上面的矩阵散点图中,我们能发现有些变量之间有显著的线性相关性,最明显的就是 density 与 residual.sugar、alcohol 之间的线性相关性。下面就单独来观察他们散点图。
绘制 density 与 residual.sugar 的散点图,并进行线性拟合。
从上图可以看出,density 与 residual.sugar 这两个变量之间有非常好的线性相关性。 之前计算得到的相关系数是0.84,相关性非常强。可见,白酒中的含糖量增加,密度也增加。
绘制 density 与 alcohol 的散点图,并进行线性拟合。
由于 alcohol 在数值上之精确到0.1,所以上图中的alcohol看上去像是离散的。可以通过增加抖动来解决这一问题,如下图所示。
从图中可以看出,density 与 alcohol 成非常强的负的线性相关性,之前计算得到的相关系数是 -0.78。 含酒精量越高,密度越低,这与常识是一致的,因为酒精的密度低于水的密度。
total.sulfur.dioxide 和 free.sulfur.dioxide 的相关系数有0.62,再来看他们之间的散点图。
pH 和 fixed.acidity 的相关系数是 -0.43, 看一下他们之间的散点图。 可见,固定酸度越高,PH值越低,与常识一致。
在查看完几组相关性比较高的变量之后,现在来观察下我们主要感兴趣的变量白酒品质 quality 与白酒化学成分变量之间的关系。
由于 quality 与 alcohol 的相关度最高,相关系数有0.44, 所以我们首先来绘制 quality 与 alcohol 的散点图,并增加抖动和线性拟合, 同时在其上叠加上箱图,便于观察数据的分布情况。
从上图看,alcohol 与 quality 之间的线性关系并不是特别明显。 并且观察箱图发现,alcohol 的中位数并非是随 quality 线性增长的, 而是随着quality 增加,alcohol 中位数先降低,后升高。
下面具体看下不同 quallity 下,alcohol 在数值上的统计量。
## wine$quality_factor: 3
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 8.00 9.55 10.45 10.35 11.00 12.60
## --------------------------------------------------------
## wine$quality_factor: 4
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 8.40 9.40 10.10 10.15 10.75 13.50
## --------------------------------------------------------
## wine$quality_factor: 5
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 8.000 9.200 9.500 9.809 10.300 13.600
## --------------------------------------------------------
## wine$quality_factor: 6
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 8.50 9.60 10.50 10.58 11.40 14.00
## --------------------------------------------------------
## wine$quality_factor: 7
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 8.60 10.60 11.40 11.37 12.30 14.20
## --------------------------------------------------------
## wine$quality_factor: 8
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 8.50 11.00 12.00 11.64 12.60 14.00
## --------------------------------------------------------
## wine$quality_factor: 9
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 10.40 12.40 12.50 12.18 12.70 12.90
将白酒分为高低档两个等级,当分数低于6时,为低档;当分数大于等于6时,为高档。 然后计算这两个等级的白酒 quality 与 alcohol 之间的相关性。
低档白酒 quality 与 alcohol 的相关系数为:
## [1] -0.1321443
高档白酒 quality 与 alcohol 的相关系数为:
## [1] 0.3116863
从上面的计算中发现,对低档白酒,酒精度越高,评分越低;对高档白酒,酒精度越高,评分越高。 它们之间有着完全相反的相关性。
用线性模型对 quality 进行拟合,只考虑 alcohol 的贡献。 由上面的探索知道,它们之间并没有很强的线性相关性,所以这里也考虑了多项式拟合, 即包含了alcohol 一阶、两阶、三阶的情况。
##
## Calls:
## m1: lm(formula = quality ~ alcohol, data = wine)
## m2: lm(formula = quality ~ alcohol + I(alcohol^2), data = wine)
## m3: lm(formula = quality ~ alcohol + I(alcohol^2) + I(alcohol^3),
## data = wine)
##
## ============================================================
## m1 m2 m3
## ------------------------------------------------------------
## (Intercept) 2.582*** 6.038*** 44.294***
## (0.098) (0.846) (6.804)
## alcohol 0.313*** -0.335* -11.010***
## (0.009) (0.158) (1.891)
## I(alcohol^2) 0.030*** 1.014***
## (0.007) (0.174)
## I(alcohol^3) -0.030***
## (0.005)
## ------------------------------------------------------------
## R-squared 0.190 0.193 0.198
## adj. R-squared 0.190 0.192 0.197
## sigma 0.797 0.796 0.793
## F 1146.395 583.526 402.190
## p 0.000 0.000 0.000
## Log-likelihood -5839.391 -5830.937 -5814.925
## Deviance 3112.257 3101.532 3081.320
## AIC 11684.782 11669.875 11639.851
## BIC 11704.272 11695.861 11672.334
## N 4898 4898 4898
## ============================================================
当使用多项式拟合时,r方略有增长,从 0.190 增加到 0.198。
接下来我们观察 quality 与 density 的关系。它们的相关系数是 -0.31。
绘制 density 与 quallity 的散点图和箱图,并增加抖动和透明度, 同时忽略了若干离群值,方便观察数据的主体部分。
chlorides 与 quality 的散点图和箱图。
volatile.acidity 与 quality 的散点图和箱图。
total.sulfur.dioxide 与 quality 的散点图和箱图。
虽然 quality 与 chlorides、volatile.acidity、total.sulfur.dioxide 之间有相对来说较大的相关系数,约在-0.2左右, 这个数值并不大,所以从图中并没有发现它们之间非常明显的线性关系。
这里感兴趣的特征是白酒品质 quality,它与其他特征的关系如下:
quality 与酒精度 alcohol 的相关性最大,有0.44,是正相关。但如果将白酒分为两个等级,对低档白酒(评分小于6),酒精度越高,评分越低;对高档白酒(评分大于等于6),酒精度越高,评分越高;这两个等级的就有着相反的相关性。
其次相关的是密度 density,呈负相关,相关系数是-0.31。
quality 与 chlorides、volatile.acidity、total.sulfur.dioxide 这三个特征的相关性相对来说较大,在-0.2左右。
在其他特征中,观察到密度 density 与 残糖 residual.sugar、酒精度 alcohol 有着非常高的线性相关性。 密度与残糖呈正相关的关系,相关系数是0.84,含糖量越高,密度越大。 密度与酒精度呈负相关,相关系数-0.78,含酒精度越高,密度越小。 这与物理常识是一致的。
还有如总SO2量 total.sulfur.dioxide 和游离SO2量 free.sulfur.dioxide, 也有较高的线性相关,相关系数达0.62。 这大概是因为他们都描述了SO2的含量,只是SO2的形态不一。
PH值反应的是酸碱度,所以它应该和酒中的酸度有关。计算发现 PH 和固定酸度 fixed.acidity 有较强的负相关,相关系数达 -0.42。 因为含酸的浓度越高,PH值越低,所以是负相关的。 但是 PH 和挥发酸度 volatile.acidity 的相关性很小,这大概是因为挥发性的酸对PH影响很小,因为容易挥发的缘故。
最强的关系就是密度 density 与 残糖 residual.sugar 这两个变量,它们的相关系数达到0.84。
首先采用 facet_wrap 的方法,绘制不同 quality 下,density 与 alcohol 关系的散点图。
从上面的一系列图中,发现随着 quality 分数变大,数据点有向右下角集中的趋势。 所以让我们在同一幅图中来绘制 density 与 alcohol 之间的散点图,并用不同颜色的点来区分不同的 quality。
从上图发现,从左上到右下角,quality 有逐渐增大的趋势。
由于上图中颜色种类太多,不利于观察,这里将 quanlity 分数切分成三份, 即将白酒品质按 quality 分为低(0-5)、中(6)、高(7-10)这三个等级。 在每一等级中数据量的分布如下:
##
## (0,5] (5,6] (6,10]
## 1640 2198 1060
然后我们用重新分组的 quality 等级来绘制类似的图。
从这幅图中,就可以很容易的看出,低等的酒主要分布在左上角,高等的酒主要分布在右下角。 也就是说,密度越大、酒精度越低,品质越低;而密度越小、酒精度越高,品质也越高。
类似的,绘制 density 和 residual.sugar 之间的散点图,用白酒品质的高中低来区分数据点。
高中低三种品质的白酒在上述的散点图中,有着比较明显的分层, 当残糖 residual.sugar 固定时,密度越高,白酒品质越可能降低。
下面来观察 density、residual.sugar 和 alcohol 这三个变量之间的关系。 将酒精度 alcohol 这一连续变量离散化,按1度进行分隔。 然后在图中绘制 density 和 residual.sugar 之间的散点图, 并使用颜色区分不同的酒精度区间,颜色从浅到深,依次表示酒精度增大。
density 与 residual.sugar 和 alcohol 这两个变量存在强相关性。 在相同 alcohol 区间中,density 随 residual.sugar 增大而增大。 当固定 residual.sugar 变量时, density 随 alcohol 增大而减小。 这与之前计算的相关系数是一致的。
接下来采用线性回归,通过白酒的各项化学指标来拟合白酒品质 quality 这项数值。
首先将所有11个化学特征都考虑进来,得到拟合的结果如下:
##
## Calls:
## m1: lm(formula = quality ~ fixed.acidity + volatile.acidity + citric.acid +
## residual.sugar + chlorides + free.sulfur.dioxide + total.sulfur.dioxide +
## density + pH + sulphates + alcohol, data = wine)
##
## ======================================
## (Intercept) 150.193***
## (18.804)
## fixed.acidity 0.066**
## (0.021)
## volatile.acidity -1.863***
## (0.114)
## citric.acid 0.022
## (0.096)
## residual.sugar 0.081***
## (0.008)
## chlorides -0.247
## (0.547)
## free.sulfur.dioxide 0.004***
## (0.001)
## total.sulfur.dioxide -0.000
## (0.000)
## density -150.284***
## (19.075)
## pH 0.686***
## (0.105)
## sulphates 0.631***
## (0.100)
## alcohol 0.193***
## (0.024)
## --------------------------------------
## R-squared 0.282
## adj. R-squared 0.280
## sigma 0.751
## F 174.344
## p 0.000
## Log-likelihood -5543.740
## Deviance 2758.329
## AIC 11113.480
## BIC 11197.936
## N 4898
## ======================================
这里得到R方的值为0.282。
考虑到并非所有的特征对 quality 都是有贡献的,我们需要做特征选择。 这里使用R语言中的step()函数,通过判断AIC的方法来选择线性模型中需要的特征。
## Start: AIC=-1188.69
## quality ~ 1
##
## Df Sum of Sq RSS AIC
## + alcohol 1 728.73 3112.3 -2217.1
## + density 1 362.30 3478.7 -1672.0
## + chlorides 1 169.28 3671.7 -1407.5
## + volatile.acidity 1 145.64 3695.4 -1376.0
## + total.sulfur.dioxide 1 117.28 3723.7 -1338.6
## + fixed.acidity 1 49.62 3791.4 -1250.4
## + pH 1 37.97 3803.0 -1235.3
## + residual.sugar 1 36.57 3804.4 -1233.5
## + sulphates 1 11.07 3829.9 -1200.8
## <none> 3841.0 -1188.7
## + citric.acid 1 0.33 3840.7 -1187.1
## + free.sulfur.dioxide 1 0.26 3840.7 -1187.0
##
## Step: AIC=-2217.14
## quality ~ alcohol
##
## Df Sum of Sq RSS AIC
## + volatile.acidity 1 193.992 2918.3 -2530.4
## + free.sulfur.dioxide 1 56.181 3056.1 -2304.4
## + residual.sugar 1 46.959 3065.3 -2289.6
## + fixed.acidity 1 14.509 3097.8 -2238.0
## + sulphates 1 14.424 3097.8 -2237.9
## + chlorides 1 12.419 3099.8 -2234.7
## + density 1 10.484 3101.8 -2231.7
## + pH 1 8.442 3103.8 -2228.4
## + citric.acid 1 2.184 3110.1 -2218.6
## + total.sulfur.dioxide 1 2.079 3110.2 -2218.4
## <none> 3112.3 -2217.1
##
## Step: AIC=-2530.37
## quality ~ alcohol + volatile.acidity
##
## Df Sum of Sq RSS AIC
## + residual.sugar 1 70.271 2848.0 -2647.8
## + free.sulfur.dioxide 1 40.484 2877.8 -2596.8
## + density 1 25.639 2892.6 -2571.6
## + fixed.acidity 1 16.109 2902.2 -2555.5
## + total.sulfur.dioxide 1 11.165 2907.1 -2547.2
## + sulphates 1 11.006 2907.3 -2546.9
## + pH 1 5.489 2912.8 -2537.6
## + chlorides 1 4.473 2913.8 -2535.9
## <none> 2918.3 -2530.4
## + citric.acid 1 0.301 2918.0 -2528.9
##
## Step: AIC=-2647.76
## quality ~ alcohol + volatile.acidity + residual.sugar
##
## Df Sum of Sq RSS AIC
## + free.sulfur.dioxide 1 21.0028 2827.0 -2682.0
## + density 1 20.8069 2827.2 -2681.7
## + fixed.acidity 1 19.0015 2829.0 -2678.5
## + pH 1 13.5270 2834.5 -2669.1
## + sulphates 1 13.0677 2834.9 -2668.3
## + total.sulfur.dioxide 1 1.9014 2846.1 -2649.0
## + chlorides 1 1.6387 2846.3 -2648.6
## + citric.acid 1 1.5879 2846.4 -2648.5
## <none> 2848.0 -2647.8
##
## Step: AIC=-2682.01
## quality ~ alcohol + volatile.acidity + residual.sugar + free.sulfur.dioxide
##
## Df Sum of Sq RSS AIC
## + density 1 19.0411 2807.9 -2713.1
## + fixed.acidity 1 15.4963 2811.5 -2706.9
## + pH 1 11.4714 2815.5 -2699.9
## + sulphates 1 11.0877 2815.9 -2699.3
## + total.sulfur.dioxide 1 2.4096 2824.6 -2684.2
## + chlorides 1 2.2177 2824.8 -2683.8
## + citric.acid 1 2.2107 2824.8 -2683.8
## <none> 2827.0 -2682.0
##
## Step: AIC=-2713.11
## quality ~ alcohol + volatile.acidity + residual.sugar + free.sulfur.dioxide +
## density
##
## Df Sum of Sq RSS AIC
## + pH 1 23.9315 2784.0 -2753.0
## + sulphates 1 22.2233 2785.7 -2750.0
## + fixed.acidity 1 4.1638 2803.8 -2718.4
## + chlorides 1 1.4137 2806.5 -2713.6
## <none> 2807.9 -2713.1
## + citric.acid 1 0.4310 2807.5 -2711.9
## + total.sulfur.dioxide 1 0.0843 2807.9 -2711.3
##
## Step: AIC=-2753.04
## quality ~ alcohol + volatile.acidity + residual.sugar + free.sulfur.dioxide +
## density + pH
##
## Df Sum of Sq RSS AIC
## + sulphates 1 18.9648 2765.1 -2784.5
## + fixed.acidity 1 2.9318 2781.1 -2756.2
## <none> 2784.0 -2753.0
## + chlorides 1 0.5578 2783.5 -2752.0
## + citric.acid 1 0.2232 2783.8 -2751.4
## + total.sulfur.dioxide 1 0.0992 2783.9 -2751.2
##
## Step: AIC=-2784.51
## quality ~ alcohol + volatile.acidity + residual.sugar + free.sulfur.dioxide +
## density + pH + sulphates
##
## Df Sum of Sq RSS AIC
## + fixed.acidity 1 6.2700 2758.8 -2793.6
## <none> 2765.1 -2784.5
## + chlorides 1 0.5311 2764.5 -2783.5
## + total.sulfur.dioxide 1 0.4328 2764.6 -2783.3
## + citric.acid 1 0.1415 2764.9 -2782.8
##
## Step: AIC=-2793.63
## quality ~ alcohol + volatile.acidity + residual.sugar + free.sulfur.dioxide +
## density + pH + sulphates + fixed.acidity
##
## Df Sum of Sq RSS AIC
## <none> 2758.8 -2793.6
## + total.sulfur.dioxide 1 0.32024 2758.5 -2792.2
## + chlorides 1 0.10967 2758.7 -2791.8
## + citric.acid 1 0.01298 2758.8 -2791.7
##
## Call:
## lm(formula = quality ~ alcohol + volatile.acidity + residual.sugar +
## free.sulfur.dioxide + density + pH + sulphates + fixed.acidity,
## data = wine)
##
## Coefficients:
## (Intercept) alcohol volatile.acidity
## 1.541e+02 1.932e-01 -1.888e+00
## residual.sugar free.sulfur.dioxide density
## 8.285e-02 3.349e-03 -1.543e+02
## pH sulphates fixed.acidity
## 6.942e-01 6.285e-01 6.810e-02
最终,我们从11项特征中选择了8项,分别是 alcohol、volatile.acidity、residual.sugar、 free.sulfur.dioxide、density 、pH、sulphates、fixed.acidity。 用它们做线性拟合的结果如下:
##
## Calls:
## m2: lm(formula = quality ~ alcohol + volatile.acidity + residual.sugar +
## free.sulfur.dioxide + density + pH + sulphates + fixed.acidity,
## data = wine)
##
## =====================================
## (Intercept) 154.106***
## (18.100)
## alcohol 0.193***
## (0.024)
## volatile.acidity -1.888***
## (0.110)
## residual.sugar 0.083***
## (0.007)
## free.sulfur.dioxide 0.003***
## (0.001)
## density -154.291***
## (18.344)
## pH 0.694***
## (0.103)
## sulphates 0.629***
## (0.100)
## fixed.acidity 0.068***
## (0.020)
## -------------------------------------
## R-squared 0.282
## adj. R-squared 0.281
## sigma 0.751
## F 239.730
## p 0.000
## Log-likelihood -5544.144
## Deviance 2758.783
## AIC 11108.288
## BIC 11173.254
## N 4898
## =====================================
得到的R方依然是0.282。
接着我们考虑多项式拟合,在上面选出的8个特征组成的线性模型中,再加入这些特征的平方项。 拟合结果如下:
##
## Calls:
## m3: lm(formula = quality ~ alcohol + I(alcohol^2) + volatile.acidity +
## I(volatile.acidity^2) + residual.sugar + I(residual.sugar^2) +
## free.sulfur.dioxide + I(free.sulfur.dioxide^2) + density +
## I(density^2) + pH + I(pH^2) + sulphates + I(sulphates^2) +
## fixed.acidity + I(fixed.acidity^2), data = wine)
##
## ===========================================
## (Intercept) 6655.513***
## (1040.689)
## alcohol -0.515**
## (0.163)
## I(alcohol^2) 0.027***
## (0.007)
## volatile.acidity -3.105***
## (0.378)
## I(volatile.acidity^2) 1.692***
## (0.504)
## residual.sugar 0.136***
## (0.012)
## I(residual.sugar^2) -0.002***
## (0.001)
## free.sulfur.dioxide 0.014***
## (0.001)
## I(free.sulfur.dioxide^2) -0.000***
## (0.000)
## density -13143.824***
## (2087.200)
## I(density^2) 6495.041***
## (1046.538)
## pH -3.041
## (2.003)
## I(pH^2) 0.625*
## (0.311)
## sulphates 0.759
## (0.569)
## I(sulphates^2) -0.045
## (0.511)
## fixed.acidity 0.705***
## (0.117)
## I(fixed.acidity^2) -0.040***
## (0.008)
## -------------------------------------------
## R-squared 0.314
## adj. R-squared 0.311
## sigma 0.735
## F 139.414
## p 0.000
## Log-likelihood -5432.863
## Deviance 2636.231
## AIC 10901.726
## BIC 11018.664
## N 4898
## ===========================================
这时,我们发现R方值略有增加,变为0.314。看来多项式拟合还是对拟合效果有所提升的。
在用白酒品质进行区分的 density 与 alcohol 的散点图中发现, 当白酒密度越大、酒精度越低时,品质也越低;而密度越小、酒精度越高,品质也越高。
在用白酒品质进行区分的 density 和 residual.sugar 的散点图, 高中低三种品质的白酒在图上有着比较明显的分层, 当残糖 residual.sugar 固定时,密度越高,白酒品质越可能降低。
白酒的密度 density 与酒精度 alcohol 及含糖量 residual.sugar 有着非常强的相关性。 在相同 alcohol 区间中,density 随 residual.sugar 增大而增大。 当固定 residual.sugar 变量时, density 随 alcohol 增大而减小。 这与之前计算的相关系数是一致的。
这里使用了线性回归模型,通过白酒的化学特征来拟合白酒品质 quality 变量。
优点:
step()函数,通过AIC下降的方法从11项特征中选择了8项,去除了不必要特征的干扰。缺点:
这幅图非常直观的反应了数据集中各个变量之间的相关性。 图中使用两种色调来反映不同方向的相关性,红色表示正相关,蓝色表示负相关。 并且颜色越深,相关系数越大。 通过观察相关系数矩阵的热图,比直接查看相关系数矩阵,更容易发现其中隐藏的规律,特别是在变量比较多时。 比如从图一中就很容易发现密度 density 与残糖 residual.sugar 有很强的正相关,与酒精度 alcohol 有很强的负相关。 再比如白酒品质 quality 除了与酒精度 alcohol 有较强的相关性,与其他特征之间的相关性都比较弱。
图二分别通过散点图和箱图这两种方式,来描述白酒品质 quality 与酒精度 alcohol 之间的关系。 散点图通过抖动和设置透明度的方法,将原本过度重合的点进行区分。 虽然 quality 与 alcohol 的相关系数是 0.44,但通过箱图我们观察到,其实 quality 并非随 alcohol 的增大而增大的: 在品质小于6时,酒精度越高,品质可能越低,是负相关的; 而在品质大于等于6时, 酒精度越高,品质越有可能提高,是正相关的。
图三反应了白酒密度 density、酒精度 alcohol、品质 quality 这三者之间的关系。 为了便于观察,图中将白酒品质分成了高中低三档,分别对应 quality 小于6、等于6、大于6这三种情况。 首先能看到的是,无论对于哪一等级的白酒,密度与酒精度之间有很强的负的线性相关性,这是由密度的物理性质决定的。 其次可以发现的是,如果只观察低档和高档酒,它们主要集中于上述散点图的两个方位: 即低档酒更偏向于左上角,而高档酒更偏向于右下角,但是中档酒就没有这么明显的集中趋势。 也就是说密度越高、酒精度越低,白酒的品质可能越低;密度越低,酒精度越高,白酒的品质可能越高。
在这篇白酒数据集的探索分析报告中,我首先通过数值统计量和直方图、箱图的形式,了解了数据集中各个变量的分布。 然后通过计算相关系数,绘制相关矩阵热图、各变量之间的散点图、箱图的方式,观察变量之间相关性。 接着探索了数据集中多个变量之间的关系。 最后使用线性回归模型,通过白酒的化学特征对其品质得分进行了拟合。
在探索白酒品质 quality 与其他化学成分之间的关系时,并没有发现很强的相关性,大多数化学特征与品质得分的相关性都比较弱。 更令人沮丧的是,即使是相关系数相对较大的酒精度 alcohol 这一特征,与 quality 的线性拟合结果也不是很好。 通过图二中绘制的箱图,进一步发现,在品质比较低时,品质与酒精度负相关;品质较高时,品质与酒精度正相关。 因此也预示着它们的线性关系并不是特别理想。
在接下来使用线性回归模型通过白酒的化学特征拟合品质得分时,得到的R方值较小, 这也进一步证实使用粗糙的线性回归模型,并不能很好预测白酒品质。 这里我也做了一些努力和尝试,比如通过step()函数来筛选特征,并增加模型中特征的平方项,使得R方的值略有提高。
在探索多个变量相互关系的图三中,我受到了一定的启发。 由于观察到品质高和低的两档白酒在 density ~ alcohol 的散点图中,有向两个不同方向集中的趋势, 也许可以采用分类的方法来预测白酒的品质。 因为白酒品质打分是离散的数值,可以看成是若干个分类, 通过使用决策树、随机森林等分类方法,也许比线性回归能更好的预测白酒的品质得分。
所以在未来更进一步的分析中,可以采用分类模型来预测白酒品质得分,提高预测的准确性。 另外针对数据集,也需要拆分成训练集和测试集,以提高对预测可靠性的衡量。
另一个未来可拓展的角度,就是将红酒数据也包括进来,同时分析和对比白酒和红酒的相同点和差异性,让数据探索更丰富和全面。